<template>
	<view class="app">
		<mescroll-uni top="60rpx" bottom="120rpx" ref="mescrollRef" @init="mescrollInit" :down="downOption"
			@down="downCallback" :up="upOption" @up="upCallback">
			<view class="list-item" v-for="(item, index) in dataList" :key="index" @click="pageTo('/pages/notice/detail?id=' + item._id)">
				<view class="list-row row">
					<view class="">
						{{ item.title }}
					</view>
					
					<view class="list-tag">
						<u-tag v-if="isRead(item)" text="已读" type="success" shape="circle" />
						<u-tag v-if="!isRead(item)" text="未读" type="error" shape="circle" />
					</view>
				</view>
				<view class="list-row">{{ item.content }}</view>
				<view class="list-row">
					{{ vk.pubfn.timeFormat(item._add_time, "yyyy-MM-dd hh:mm:ss") }}
				</view>
				
			</view>
		</mescroll-uni>
	</view>
</template>

<script>
	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
	
	export default {
		mixins: [MescrollMixin], // 下拉刷新和上拉加载的组件
		data() {
			return {
				id: '',
				isAdmin: false,

				dataList: [],
				// 列表查询请求数据
				queryForm1: {
					// 分页数据
					pagination: {
						pageIndex: 1, //当前页码
						pageSize: 100, //每页显示数量
					},
					// 表单数据源
					formData: {
						type: 1, // 公告类型（1通知 2公告）
					},
					// 查询匹配规则
					columns: [{
						key: "type",
						mode: "="
					}],
					// 排序规则
					sortRule: [{
						name: "_add_time",
						type: "desc"
					}]
				},
				downOption: {
					auto: false, //是否在初始化后,自动执行上拉回调callback; 默认true					
				},
				upOption: {
					auto: true, //是否在初始化后,自动执行上拉回调callback; 默认true
					page: {
						num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
						size: 10 // 每页数据的数量
					},
					noMoreSize: 8, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看
					textNoMore: '没有更多数据',
					empty: {
						tip: '~ 搜索无结果 ~', // 提示
						btnText: ''
					}
				},
			}
		},
		onLoad(options = {}) {
			this.initPage(options);
		},
		onShow() {
			this.mescroll && this.mescroll.resetUpScroll();
		},
		methods: {
			isRead(item){	
				return vk.pubfn.isNotNull(item.readlog);
				// if(vk.pubfn.isNull(item.readlog)) return '未读';
				// else return '已读';
			},
			pageTo(path){
				vk.navigateTo(path);
			},
			// 页面数据初始化函数
			initPage(options) {
				
			},
			search() {
				this.mescroll.resetUpScroll();
			},
			// 获取列表
			upCallback(page) {
				let url = this.$api.NoticeList;

				vk.callFunction({
						url,
						loading: true,
						data: {
							...this.queryForm1,
							pagination: {
								pageIndex: page.num, //当前页码
								pageSize: page.size, //每页显示数量
							},
						},
					})
					.then(res => {
						// console.log('获取列表res', res)
						this.mescroll.endSuccess(res.rows.length);
						if (res.rows.length > 0) {
							if (page.num == 1) this.dataList = []; //如果是第一页需手动置空列表
							this.dataList = this.dataList.concat(res.rows); //追加新数据
						} else{
							this.dataList = [];
							this.$util.toast('暂无搜索内容');
						}
					}).catch((err) => {
						console.log('联网失败, 结束加载', err)
						this.mescroll.endErr();
						this.dataList = [];
					})
			},
		}
	}
</script>